package com.example.demo.excel.valid;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author yg.zhao
 * @description excel校验
 * @date 2022/12/12
*/
public class ExcelValid {
    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface ExcelDecimalValid {
        /**
         * 最小值
         */
        String min();

        /**
         * 最大值
         */
        String max();

        /**
         * 名称
         */
        String name() default "";

        /**
         * 错误提示
         */
        String message() default "小数类型数字填写超出范围";
    }

    /**
     * <p>Excel导入正则表达式校验</p>
     */
    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface ExcelPatternValid {
        /**
         * 正则表达式
         */
        String regexp() default "";

        /**
         * 名称
         */
        String name() default "";

        /**
         * 错误提示
         */
        String message() default "不符合规则";
    }

    /**
     * <p>Excel导入Int类型校验</p>
     */
    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface ExcelIntValid {
        /**
         * 最小值
         */
        int min();

        /**
         * 最大值
         */
        int max();

        /**
         * 名称
         */
        String name() default "";

        /**
         * 错误提示
         */
        String message() default "整数数字填写超出范围";
    }

    /**
     * <p>Excel导入字符串长度校验</p>
     */
    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface ExcelStrValid {
        /**
         * 字符串长度
         */
        int length() default 0;

        /**
         * 名称
         */
        String name() default "";

        /**
         * 错误提示
         */
        String message() default "文字填写超出长度要求";
    }

    /**
     * <p>Excel导入必填校验注解</p>
     */
    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface ExcelMustValid {
        /**
         * 表头字段
         */
        String name() default "";

        /**
         * 错误提示
         */
        String message() default "导入有未填入的字段";
    }
}
